#include"process.h"
#include<stdio.h>
#include<string.h>
#include<unistd.h>


#define NUM 101
#define STYLE '#'
#define POINT '.'
#define SPACE ' '
const int pnum = 6;

//version2真实的进度条要根据具体的数据刷新进度
void flushprocess(double total,double current)
{
	//1.更新当前进度百分比
	double rate = (current/total)*100;
	//2.更新进度主体
	char bar[NUM];
	memset(bar,'\0',sizeof(bar));//清空数组
	for(int i=0;i<(int)rate;i++)//默认1%更新一个符号
	{
		bar[i]=STYLE;
	}
	//3.更新旋转光标
	static int num = 0;
	num++;
	num%=pnum;
	char points[pnum+1];//linux中[]里面可以变量
	memset(points,'\0',sizeof(points));
	for(int i=0;i<pnum;i++)
	{
		if(i<num) points[i]=POINT;
		else points[i]=SPACE;

	}
	//4.打印
	printf("[%-100s][%.1lf%%]%s\r",bar,rate,points);
	fflush(stdout);
}





//version1
//void process()
//{
//	const char *label="|/-\\";
//	char bar[NUM];
//	int len = strlen(label);
//	memset(bar,'\0',sizeof(bar));
//	int cnt = 0;
//	while(cnt <= 100)
//	{
//		//从左到右打印并预留空间
//		printf("[%-100s][%d%%][%c]\r",bar,cnt,label[cnt%len]);
//		fflush(stdout);//强制刷新
//		bar[cnt]=STYLE;
//		cnt++;
//
//		sleep(1);
//	}
//	printf("\r\n");
//}
